#pragma once

#include "lib/Utils/File.h"

#include "Windows.h"

#include <string>

class WinFile :
	public File
{
public:

	WinFile(const WinFile&);

	static WinFile OpenReadOnly(const std::string& a_Path);
	static WinFile OpenReadWrite(const std::string& a_Path);
	static WinFile Create(const std::string& a_Path);
	static WinFile CreateTemp(const std::string& a_Path);

	virtual void Write(const std::string& a_Line);
	virtual std::string Read();

	virtual ~WinFile(void);

private:
	WinFile(void);
	WinFile(HANDLE);

	HANDLE m_File;
};
